www.gusucode.com > C++ Builder 实现艺术字体效果 > C++ Builder 实现艺术字体效果/gusucode/Unit1.cpp

    //Download by http://www.NewXing.com
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "Word_2K_SRVR"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
     : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{
     WordApplication1->Connect();
     WordApplication1->Documents->Add()->Select();
     WordApplication1->Visible=false;
     WordDocument1->ConnectTo(WordApplication1->ActiveDocument);
     WordDocument1->Shapes->AddTextEffect
          (Office_2k::MsoPresetTextEffect(0),Variant("编程实例精解"),
          Variant("隶书"),48,
          Office_2k::MsoTriState(-1),Office_2k::MsoTriState(0),
          0,0)->Select();
     ComboBox1->Items = Screen->Fonts;
     ComboBox1->Text="隶书";
     ShowFont();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormDestroy(TObject *Sender)
{
    WordApplication1->Quit(Variant(false));
    WordApplication1->Disconnect();
}
//---------------------------------------------------------------------------


void __fastcall TForm1::ShowFont()
{
     AnsiString t=Edit1->Text;
     t=t+AnsiString::StringOfChar(' ',12-t.Length());
     WordDocument1->Range(EmptyParam,EmptyParam)->ShapeRange
          ->TextEffect->Text = Variant(t);
     WordDocument1->Range(EmptyParam,EmptyParam)->ShapeRange
          ->TextEffect->PresetTextEffect=UpDown1->Position;
     WordDocument1->Range(EmptyParam,EmptyParam)->ShapeRange
          ->TextEffect->FontName =Variant(ComboBox1->Text);
     if (CheckBox1->Checked)
          WordDocument1->Range(EmptyParam,EmptyParam)->ShapeRange
          ->TextEffect->FontBold=-1;
     else
          WordDocument1->Range(EmptyParam,EmptyParam)->ShapeRange
          ->TextEffect->FontBold=0;
     if (CheckBox2->Checked)
          WordDocument1->Range(EmptyParam,EmptyParam)->ShapeRange
          ->TextEffect->FontItalic=-1;
     else
          WordDocument1->Range(EmptyParam,EmptyParam)->ShapeRange
          ->TextEffect->FontItalic=0;
     WordDocument1->Range(EmptyParam,EmptyParam)->CopyAsPicture();
     TMetafile *Metapic=new TMetafile();
     Metapic->Assign(Clipboard());
     Image1->Picture->Assign(Metapic);
     delete Metapic;
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
     ShowFont();
}
//---------------------------------------------------------------------------